Electronic mail (email) systems are not as old as the hills, but they are almost as old as multi-user computers. For almost as long, such systems have had a concept of group addresses, and delivering email to all members of a group. These group addresses are referred to herein as an mail list.
One typical problem with the use of an email list in such an email system is conveniently specifying exceptions to group addresses. That is, it is difficult to specify addresses in the group of addresses associated with the mail list to which an email message is not to be sent. It is a common occurrence, for instance, to wish to send out a message to every member of a group, except for one. The ordinary example is an announcement for a surprise birthday party.
There are a number of problems with providing a specification for an address form that includes the use of a mail list yet provides for exceptions. One problem is that membership of mail lists is not always made public. This is quite important in an age where junk e-mail is the most expensive component of electronic mail delivery. Many prior art email systems allow for specifying exceptions using forms of set arithmetic. That is, some prior art systems have implemented full Boolean algebra, including logical AND, OR, NOT, and XOR. These systems require knowledge of the members of all lists mentioned in order to work because their use requires bringing all the addresses on the mail list to a client and then perform all the processing. However, these systems cannot be guaranteed to work in the presence of partial set knowledge.
Another issue is that mail is subject to forwarding. This means that it is impossible to detect whether a given mail address points to one or more people. Detecting where an exception applies is a difficult problem. It is not generally possible to detect, by inference, the scope of an exception unless it is applied to a specific host and address.
Another issue is that mail addresses are ambiguous globally, but can be resolved within an given delivery scope. Each step of the mail delivery process invokes rewriting rules that transform mail addresses from one form to another. For example, mail addressed to simply “persons_name”, when delivered through a local mail server, goes to a particular address, even though there are several other domains where the person holds that same local address.
Equally important is specifying proper behavior when an exception cannot be applied. In our birthday example, above, it would be disastrous if the party announcement went to the guest of honor, simply because an email address was withheld.